export default {
  namespaced:true,
  state:()=>({
    address:{}
  }),
  getters:{
    addstr(state){
      if(!state.address.provinceName) return ''
      return state.address.provinceName +state.address.cityName+state.address.countyName+state.address.detailInfo
    }
  },
  
  mutations:{
    updateAddressInfo(state,data){
      state.address=data
      this.commit('m_user/saveAddressToStotage')
    },
    saveAddressToStotage(state){
      uni.setStorageSync('address',JSON.stringify(state,address))
    }
  },
  // 调用此方法，重新发起收货地址的授权
  async reAuth() {
    // 3.1 提示用户对地址进行授权
    const [err2, confirmResult] = await uni.showModal({
      content: '检测到您没打开地址权限，是否去设置打开？',
      confirmText: "确认",
      cancelText: "取消",
    })
  
    // 3.2 如果弹框异常，则直接退出
    if (err2) return
  
    // 3.3 如果用户点击了 “取消” 按钮，则提示用户 “您取消了地址授权！”
    if (confirmResult.cancel) return uni.$showMsg('您取消了地址授权！')
  
    // 3.4 如果用户点击了 “确认” 按钮，则调用 uni.openSetting() 方法进入授权页面，让用户重新进行授权
    if (confirmResult.confirm) return uni.openSetting({
      // 3.4.1 授权结束，需要对授权的结果做进一步判断
      success: (settingResult) => {
        // 3.4.2 地址授权的值等于 true，提示用户 “授权成功”
        if (settingResult.authSetting['scope.address']) return uni.$showMsg('授权成功！请选择地址')
        // 3.4.3 地址授权的值等于 false，提示用户 “您取消了地址授权”
        if (!settingResult.authSetting['scope.address']) return uni.$showMsg('您取消了地址授权！')
      }
    })
  }
}